<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 <meta http-equiv="content-style-type" content="text/css" />
 <meta name="author" content="WarpEnterprises, Arlsair" />
 <meta name="date" content="2003-07-09" />
 <title>Overlay AviSynth Filter</title>
 <link rel="stylesheet" type="text/css" href="../../style.css" />
 <style type="text/css">td {vertical-align:top;}</style>
</head><body>
<h3><a name="Overlay"></a>Overlay</h3>

<tt>Overlay(</tt><i>clip clip, clip overlay [,int x, int y, clip mask, float opacity, string mode, bool greymask, string output, bool ignore_conditional, bool pc_range]</i><tt>)</tt><br />
<br />
<tt>Overlay</tt> legt zwei Clips &uuml;bereinander, wobei man das &uuml;berlagernde Bild positionieren kann und zwischen verschiedenen Methoden, wie &uuml;berlagert werden soll, w&auml;hlen kann. Weiterhin kann man die Transparenz des &uuml;berlagernden Clips einstellen.<br />
<br />
<tt>Overlay</tt> akzeptiert als Quelle alle Farbformate. Die Quellclips werden intern in ein allgemeines YUV Format (ohne Subsampling) konvertiert, so dass der Filter auch ein anderes Farbformat ausgeben kann als das Quell-Farbformat. Es ist auch nicht notwendig, dass die beiden Quellclips im gleichen Farbformat sind, da sie eh erstmal intern konvertiert werden. Es wird aber nicht empfohlen, <tt>Overlay</tt> nur f&uuml;r einen Wechsel des Farbformates zu verwenden, da es langsamer und von etwas schlechterer Qualit&auml;t ist als die Standard-Konvertierungen.<br />
<br />
Im Allgemeinen werden alle Clips mit Werten zwischen 0 bis 255 verarbeitet. Soll hei&szlig;en, die Werte werden nicht auf den CCIR 601 Bereich beschnitten. Dazu kann man im Nachhinein <a href="limiter.htm">Limiter</a> nutzen. Die Masken sollte auch Werte von 0 bis 255 haben. Man kann <a href="histogram.htm">Histogram</a> mit <tt>Histogram(&quot;levels&quot;)</tt> nutzen, um sich die Farbverteilung anzusehen. Falls die Maske im CCIR 601 Bereich ist, verwende vorher <a href="coloryuv.htm">ColorYUV</a> mit <tt>ColorYUV(levels=&quot;TV->PC&quot;)</tt>, um die Farbwerte hochzurechnen.<br />
<br />
Es wird nicht empfohlen, interlaced Material zu &uuml;berlagern, es sei denn, man wei&szlig; wirklich, was man da tut.<br />
<br />
<table border="0" cellspacing="5">
 <tr><th colspan="2"><b>Parameter:</b></th></tr>
 <tr><td><i>clip</i></td><td>Dies ist der grundlegende Clip, auf den man dann etwas &uuml;berlagern kann.</td></tr>
 <tr><td><i>overlay</i></td><td>Dies ist der Clip, der &uuml;berlagert wird. Der Farbraum und/oder die Aufl&ouml;sung muss nicht mit der vom darunterliegenden Clip &uuml;bereinstimmen.</td></tr>
 <tr><td><i>x</i></td><td>Bestimmt die Position des &uuml;berlagerten Clips in horizontaler Richtung in Pixel. Der Parameter kann positive und negative Werte annehmen. Standard ist <i>0</i>.</td></tr>
 <tr><td><i>y</i></td><td>Bestimmt die Position des &uuml;berlagerten Clips in vertikaler Richtung in Pixel. Der Parameter kann positive und negative Werte annehmen. Standard ist <i>0</i>.</td></tr>
 <tr><td><i>mask</i></td><td>Hier kann man einen Clip angeben, der als Transparenz-Maske f&uuml;r den &uuml;berlagerten Clip fungiert. Die Maske muss die selbe Aufl&ouml;sung haben wie der &uuml;berlagerte Clip. Selbstverst&auml;ndlich wird nur die Helligkeit (Luma) vom Clip f&uuml;r die Maske verwendet. Um so dunkler der Maske ist, um so transparenter wird der &uuml;berlagerte Clip. Es gibt keinen Standard, aber wenn man nichts weiter angibt, so ist gleichbedeutend mit einem 255 (wei&szlig;) Clip.</td></tr>
 <tr><td><i>opacity</i></td><td>Dies definiert, wie transparent der &uuml;berlagerte Clip allgemein sein soll. Der Wert geht von <i>0.0</i> bis <i>1.0</i>, wobei <i>0.0</i> komplett transparent ist und <i>1.0</i> v&ouml;llig undurchl&auml;ssig ist (falls es keinen <i>mask</i> Clip gibt). Wenn man eine Maske verwendet, wird dieser Wert mit dem Masken-Wert multipliziert f&uuml;r die endg&uuml;ltige Transparenz. Standard ist <i>1.0</i>.</td></tr>
 <tr><td><i>mode</i></td><td>Mit diesem Parameter (in Anf&uuml;hrungszeichen!) kann man bestimmen, wie die Clips &uuml;berlagert werden (Standard ist <i>Blend</i>):<br />
                             <table border="0">
                              <tr><td><i>Blend</i></td><td>Wenn <i>opacity=1.0</i> ist und es keine Maske gibt, dann wird der &uuml;berlagernde Clip einfach &uuml;ber den grundlegenden Clip gelegt. Ansonsten wird der Clip transparent miteingeblendet.</td></tr>
                              <tr><td><i>Add</i></td><td>Dies addiert den &uuml;berlagernden Clip zu dem anderen Clip, was das Video heller macht. Um dies vergleichbar zu RGB zu machen, beeinflussen &uuml;berm&auml;&szlig;ig helle Fl&auml;chen die Farben, indem sie wei&szlig;er werden.</td></tr>
                              <tr><td><i>Subtract</i></td><td>Das Gegenteil von <i>Add</i>. Dies macht Fl&auml;chen dunkler.</td></tr>
                              <tr><td><i>Multiply</i></td><td>Dies macht das Bild auch dunkler, aber es funktioniert anders als <i>Subtract</i>.</td></tr>
                              <tr><td><i>Chroma</i></td><td>Es werden nur die Farbinformationen des &uuml;berlagernden Clips genutzt.</td></tr>
                              <tr><td><i>Luma</i></td><td>Es werden nur die Helligkeitsinformationen des &uuml;berlagernden Clips genutzt.</td></tr>
                              <tr><td><i>Lighten</i></td><td>Es werden nur die hellen Informationen des &uuml;berlagernden Clips kopiert, aber nur wenn sie heller sind als die Werte des grundlegenden Clips.</td></tr>
                              <tr><td><i>Darken</i></td><td>Es werden nur die hellen Informationen des &uuml;berlagernden Clips kopiert, aber nur wenn sie dunkler sind als die Werte des grundlegenden Clips</td></tr>
                              <tr><td><i>SoftLight</i></td><td>Dies macht den grundlegenden Clip heller oder dunkler, basierend auf der Helligkeit des &uuml;berlagernden Clips. Falls dieser dunkler als luma=128 ist, wird das grundlegende Bild dunkler; falls dieser heller als luma=128 ist, wird das grundlegende Bild heller. Dies ist sinnvoll, wenn man Schatten hinzuf&uuml;gen will. Komplett schwarz oder wei&szlig; resultiert in deutlich dunkleren beziehungsweise helleren Fl&auml;chen, aber niemals komplett schwarz oder wei&szlig;.</td></tr>
                              <tr><td><i>Hardlight</i></td><td>Dies macht den grundlegenden Clip heller oder dunkler, basierend auf der Helligkeit des &uuml;berlagernden Clips. Falls dieser dunkler als luma=128 ist, wird das grundlegende Bild dunkler; falls dieser heller als luma=128 ist, wird das grundlegende Bild heller. Dies ist sinnvoll, wenn man Schatten hinzuf&uuml;gen will. Komplett schwarz oder wei&szlig; resultiert in komplett schwarz beziehungsweise wei&szlig;.</td></tr>
                              <tr><td><i>Difference</i></td><td>Dies zeigt die Unterschiede zwischen den beiden Clips an. Beachte, dass die Unterschiede wie bei <a href="subtract.htm">Subtract</a> mit grau=127 angezeigt werden. Wenn du die reinen Unterschiede willst, verwende <tt><a href="coloryuv.htm">ColorYUV</a>(off_y=-127)</tt>.</td></tr>
                              <tr><td><i>Exclusion</i></td><td>Es wird der grundlegende Clip invertiert basierend auf der Helligkeit des &uuml;berlagernden Clips. Ist dieser komplett wei&szlig;, so werden die Farben vollst&auml;ndig invertiert; ist dieser schwarz, so passiert gar nichts.</td></tr>
                             </table></td></tr>
 <tr><td><i>greymask</i></td><td>Mit diesem Parameter kann man angeben, ob die Farbe der Maske f&uuml;r die Farbtransparenz genutzt werden soll. Allgemein sollte man diese Option nicht deaktivieren. Externe Plugins wie mSharpen oder Masktools sind in der Lage, exakte Farbkarten zu erstellen. Standard ist <i>true</i>.</td></tr>
 <tr><td><i>output</i></td><td>Hiermit kann man das Farbformat des resultierenden Clips &auml;ndern. M&ouml;gliche Werte sind <i>&quot;YV12&quot;</i>, <i>&quot;YUY2&quot;</i>, <i>&quot;RGB24&quot;</i> und <i>&quot;RGB32&quot;</i> (in Anf&uuml;hrungsstrichen!). Standard ist das Farbformat der Quelle.</td></tr>
 <tr><td><i>ignore_conditional</i></td><td>Hiermit kann man <tt>Overlay</tt> dazu bringen, die bedingten Variablen zu ignorieren. Standard ist <i>false</i>. Dies ist n&uuml;tzlich, wenn man <tt>Overlay</tt> mehrfach anwendet.<br />
                                           <br />
                                           <b>Conditional Variables:</b><br />
                                           Die globalen Variablen <i>OL_opacity_offset</i>, <i>OL_x_offset</i> und <i>OL_y_offset</i> werden bei jeden Frame abgefragt und angewendet. Man kann sie &uuml;ber <a href="conditionalfilter.htm">FrameEvaluate</a> modifizieren. Die Werte der Variablen werden zu den Werten des Filters addiert, so dass, wenn z.B. <i>x=100</i> bei Filter und <i>ol_x_offset=50</i> als globale Variable definiert ist, der von <tt>Overlay</tt> genutzte Wert f&uuml;r <i>x=150</i> ist.</td></tr>
 <tr><td><i>pc_range</i></td><td>Bei <i>true</i> wird bei allen internen RGB -&gt; YUV -&gt; RGB Farbraumkonvertierung von einem Helligkeitsbereich von 0 bis 255 ausgegangen anstatt des standardm&auml;&szlig;en Bereiches von 16 -&gt; 235. Man sollte diesen Parameter nur &auml;ndern, wenn man wei&szlig;, was man da tut. Siehe auch den Hinweis &quot;RGB Hinweise&quot; unten. Standard ist <i>false</i></td></tr>
</table>
<br />
<b>RGB Hinweise:</b><br />
Die Sektion beschreibt Sachen, warum <tt>Overlay</tt> funktioniert, wenn man ihm eine oder mehrere RGB Quellen liefert.<br />
<br />
Eine oder mehrere RGB Quellen sind bei <tt>Overlay</tt> erlaubt. Da aber <tt>Overlay</tt> die Daten intern im YUV Farbraum verarbeitet, wird dann eine RGB -&gt; YUV Konvertierung gemacht. Es gibt dabei zwei Modi, die man mit dem <i>pc_range</i> Parameter einstellt. Dieser Parameter erweitert den YUV Bereich von 16-235 (wird von alle AviSynth Konvertern genutzt) auf 0-255. Es gibt aber einige F&auml;lle, wo es eine gute Idee ist, den erweiterten PC Bereich zu w&auml;hlen:
<ul>
 <li>Wenn einen RGB Clip &uuml;berlagert mit <i>Add</i>, <i>Subtract</i> oder <i>Multiply</i>, der PC Bereich (0-255) ist f&uuml;r den &uuml;berlagernden Clip besser, da so komplett schwarze Fl&auml;chen nicht beeinflusst werden (ansonsten werden 16 zu jedem Wert hinzuaddiert).</li>
 <li>Wenn man bei der Ausgabe KEINE Farbraumkonvertierung hat. Falls der Ziel-Farbraum (RGB vs. YUV) unterschiedlich von der Quelle ist, ist die Skalierung falsch. Bei <i>pc_range=true</i> und einer RGB Quelle und YUY2 als Zielformat, wird YUY2 eine ung&uuml;ltigen Bereich haben anstatt dem CCIR 601 Bereich.</li>
</ul>
Ausgabe von RGB:<br />
Es kann eine gute Idee sein, dass <tt>Overlay</tt> als Zielformat YUY2 liefert, auch wenn die Quelle RGB ist, da dies eine Farbraumkonvertierung zu RGB erspart. Man sollte aber darauf achten, dass die Daten nicht &quot;&uuml;berskaliert&quot; sind, wie oben erw&auml;hnt, wenn man <i>pc_range=true</i> setzt. Dies kann man dann mit <tt><a href="coloryuv.htm">ColorYUV</a>(levels=&quot;PC-&gt;TV&quot;)</tt> auf den g&uuml;ltigen 16-235 Bereich korrigieren.<br />
<br />
RGB Masken Clips:<br />
RGB Masken k&ouml;nnen sich etwas anders verhalten, als man denkt. Falls du immer eine grauskalierte Maske verwendest und <i>greymask</i> nicht deaktivierst, wirst du alles wie erwartet funktionieren. Man sollte wissen, dass die Masken nie auf den 16-&gt;235 Bereich skaliert werden, so dass man bei RGB immer den  0-&gt;255 Bereich hat.<br />
<br />
Verwendung des RGB32 Alpha Kanales:<br />
<tt>Overlay</tt> verwendet nie den Alpha Kanal eines RGB32 Clips. Wenn du diesen Alpha Kanal haben willst, kannst du <a href="showalpha.htm">ShowAlpha</a> verwenden, um die Alpha Informationen zu extrahieren. F&uuml;r h&ouml;chstm&ouml;gliche Qualit&auml;t sollte man den Alpha Kanal in RGB extrahieren.<br />
<br />
<table border="0" cellspacing="5">
 <tr><th colspan="2"><b>Beispiele:</b></th></tr>
 <tr><td><tt>bg = ColorBars(512,384).ConvertToYUY2()<br />
             text = BlankClip(bg).Subtitle(&quot;Colorbars&quot;).ColorYUV(levels=&quot;TV->PC&quot;)</tt></td><td>Bereitet einige Quelle vor</td></tr>
 <tr><td><tt>Overlay(bg,text,x=50,y=20,mode=&quot;subtract&quot;,opacity=0.25)<br />
             Overlay(text,x=50,y=120,mode=&quot;add&quot;,opacity=0.5)<br />
             Overlay(text,x=50,y=240,mode=&quot;blend&quot;,opacity=0.7) </tt></td><td>Diese &uuml;berlagert den Text in drei unterschiedlichen Versionen</td></tr>
</table>
<br />
<table border="0" cellspacing="5">
 <tr><th colspan="2"><b>Changelog:</b></th></tr>
 <tr><td><tt>v2.54</tt></td><td>Erstes Release</td></tr>
</table>
<br />
<form action=""><input type="button" value="Zur&uuml;ck" onclick="history.go(-1)" /></form>
</body>
</html>
